//
//  ViewController.m
//  07-UITableView
//
//  Created by mafeng on 16/7/25.
//  Copyright © 2016年 mafeng. All rights reserved.
//

#import "ViewController.h"
#import "UIView+Frame.h"

#define kTableViewReuse @"Reuse"

@interface ViewController ()<UITableViewDataSource, UITableViewDelegate>
@property (nonatomic, assign) NSInteger numberCount;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.numberCount = 0;
    self.navigationController.navigationBarHidden = YES;
    // UITableView
    // 1. 基本创建
    UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
    [self.view addSubview:tableView];
    // tableView 默认创建alwaysBounceVertical为开启状态, 他让tableview刚开始就可滚动
    //tableView.alwaysBounceVertical = NO;
    // 开始滚动不是因为有size, 打印出来size为0
    NSLog(@"%@", NSStringFromCGSize(tableView.contentSize));
    // 2. 相关属性
    // 直接设置, 行高(默认值是:44)
    NSLog(@"%f", tableView.rowHeight); //  但是打印出来是-1
    tableView.rowHeight = 40;
    NSLog(@"%f", tableView.rowHeight);
    // 预估行高度
    tableView.estimatedRowHeight = 100; // 以后讲
    // 3. 分割线的颜色
    tableView.separatorColor = [UIColor redColor];
    // 4. 分割线的样式
    // 设置隐藏分割线 UITableViewCellSeparatorStyleNone
    // 默认: UITableViewCellSeparatorStyleSingleLine
    tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
    // tableView 头视图
    // tableHeaderView 的x, y坐标不影响其位置
    // 例: 轮播图 个人资料
//    UIView *hearderView = [[UIView alloc] initWithFrame:CGRectMake(1000, 1000, self.view.bounds.size.width, 200)];
//    hearderView.backgroundColor = [UIColor grayColor];
//    tableView.tableHeaderView = hearderView;
//    // 如果tableHeaderView要进行频繁修改, 必须加上beginUpdates 和 endUpdates
//    [tableView beginUpdates];  // 开始更新
//    tableView.tableHeaderView.mf_height = 300;
//    [tableView endUpdates];  // 结束更新
    
    // tableFooterView x会对尾视图产生坐标影响, y不会
//    UIView *footView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, self.view.mf_width, 400)];
//    footView.backgroundColor = [UIColor orangeColor];
//    tableView.tableFooterView = footView;
    
    // 小应用
    // 把多余的空cell隐藏掉, 空cell一般出现在一个界面只展示几条数据, 并且数据占不满整个屏幕
    tableView.tableFooterView = [[UIView alloc] init];
    
    // tableView 数据展示
    // delegate 代理 帮助tableView执行一些事件
    // datasource 数据源 用来给tableView展示数据
    tableView.delegate = self;
    tableView.dataSource = self;
    
    // 注册cell
    
}
    // 返回数据源个数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 1000;
}
    // 返回数据源的样式
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // cell 创建方式
    // 1. 直接创建
    // 2. 从重用池中取出对应的表示的cell
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kTableViewReuse];
    // 如果从重用池中取出的cell为空, 创建一个新的cell
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:kTableViewReuse];
        _numberCount++;
        NSLog(@"创建新的cell----%@----%ld", cell, _numberCount);
    } else {
        NSLog(@"重用旧cell-----%@", cell);
    }
    // 3. 通过注册方式创建, 通过registerClass创建
    // cell注册出来的cell的样式是default, 没有副标题
    [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"pool"];
    // cell style
//    UITableViewCellStyleDefault  cell的默认style 没有副标题
//    UITableViewCellStyleSubtitle  主副标题上下紧挨写, 主标题字号大, 副标题字号小
//    UITableViewCellStyleValue2   小字号, 蓝色主标题, 黑色副标题,. 主副标题紧挨
//    UITableViewCellStyleValue1    左边主标题(黑色), 最右边副标题(灰色)
    // cell 主标题
    cell.textLabel.text = @"哈哈";
    // cell 副标题
    cell.detailTextLabel.text = @"呵呵";
    // cell
    cell.imageView.image =[UIImage imageNamed:@"user"];
    return cell;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
